package dominio;

import interfaces.BaseDeDatos;

import java.io.Serializable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class Hotel implements Serializable, BaseDeDatos {
	protected Integer idHotel;
	protected String nombre;
	protected Integer capacidad;
	protected String pais;
	protected String provincia;
	protected String ciudad;
	private static final long serialVersionUID = -4908227230670716200L;
	
	public Hotel(){
	}
	
	public Hotel(Integer idhotel, String nombre, Integer capacidad, String pais, String provincia, String ciudad){
		this.idHotel = idhotel;
		this.nombre = nombre;
		this.capacidad = capacidad;
		this.pais = pais;
		this.provincia = provincia;
		this.ciudad = ciudad;
	}

	public Integer getIdHotel() {
		return idHotel;
	}

	public void setIdHotel(Integer idHotel) {
		this.idHotel = idHotel;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public Integer getCapacidad() {
		return capacidad;
	}

	public void setCapacidad(Integer capacidad) {
		this.capacidad = capacidad;
	}

	public String getPais() {
		return pais;
	}

	public void setPais(String pais) {
		this.pais = pais;
	}

	public String getProvincia() {
		return provincia;
	}

	public void setProvincia(String provincia) {
		this.provincia = provincia;
	}

	public String getCiudad() {
		return ciudad;
	}

	public void setCiudad(String ciudad) {
		this.ciudad = ciudad;
	}
	
	public String toString(){
		return nombre + " - " + pais + ", " +
				provincia + ", " + ciudad;
	}

	@Override
	public List<Hotel> leerRegistrosBD() throws SQLException {
		List<Hotel> lista = new ArrayList<Hotel>();	
		Connection conn = null;
		String query = "select * from hoteles";
		conn = DriverManager.getConnection(host + dbName, user, pass);
		Statement st = conn.createStatement();			
		ResultSet rs = st.executeQuery(query);
		while(rs.next()){
				lista.add( new Hotel(rs.getInt("idhotel_h"), rs.getString("nombre_h"),
						rs.getInt("capacidad_h"), rs.getString("pais_h"), rs.getString("provincia_h"),
						rs.getString("ciudad_h"))
						);
		}
		if(conn != null)conn.close();
		return lista;
	}

	@Override
	public void guardarRegistroBd() throws SQLException {
		// TODO Auto-generated method stub
		
	}

	@Override
	public Object leerRegistroBD(int id) throws SQLException {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void actualizarRegistroBd() throws SQLException {
		// TODO Auto-generated method stub
		
	}
		
}
